{{>Partials/ClassDeclaration}} {
    private {{className}}() {}

{{#variants}}
    /**
     * Creates a builder for the {@link {{type.name}} {{name}}} {@code {{union.className}}} variant.
     */
    public static {{#union.typeParameters}}{{.}}{{/union.typeParameters}} {{type.builderType}} {{#asFieldName}}{{name}}{{/asFieldName}}() {
        return new {{type.builderType}}();
    }
{{/variants}}
}
